﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace User.Api.Helpers.WeixinPayV3.WxResult
{
    public class OrderQueryResult
    {

      
        /// <summary>
        /// 业务结果 0-查询成功，1-失败或未订单信息 
        /// </summary>
        public string ResultCode { get; set; }

        /// <summary>
        /// 返回信息  return_msg/err_code||err_code_des  否  String(128)  签名失败  返回信息，如非空，为错误原因 签名失败 参数格式校验错误
        /// </summary>
        public string ResultMsg { get; set; }

     

        //-----以下字段在return_code为SUCCESS的时候有返回 ---------------------------------------

        /// <summary>
        /// 公众账号ID  appid  是  String(32)  wxd678efh567hg6787  微信分配的公众账号ID  
        /// </summary>
        public string AppId { get; set; }

        /// <summary>
        /// 商户号  mch_id  是  String(32)  1230000109  微信支付分配的商户号 
        /// </summary>
        public string MchId { get; set; }
        /// <summary>
        /// 随机字符串  nonce_str  是  String(32)  5K8264ILTKCH16CQ2502SI8ZNMTM67VS  随机字符串，不长于32位。推荐随机数生成算法 
        /// </summary>
        public string NonceStr { get; set; }

        /// <summary>
        /// 签名  sign  是  String(32)  C380BEC2BFD727A4B6845133519F3AD6  签名，详见签名生成算法 
        /// </summary>
        public string Sign { get; set; }

        /// <summary>
        /// 设备号  device_info  否  String(32)  013467007045764  微信支付分配的终端设备号，  
        /// </summary>
        public string DeviceInfo { get; set; }
        /// <summary>
        /// 用户标识  openid  是  String(128)  oUpF8uMuAJO_M2pxb1Q9zNjWeS6o  用户在商户appid下的唯一标识  
        /// </summary>
        public string OpenId { get; set; }
        /// <summary>
        /// 是否关注公众账号  is_subscribe  否  String(1)  Y  用户是否关注公众账号，Y-关注，N-未关注，仅在公众账号类型支付有效 
        /// </summary>
        public string IsSubscribe { get; set; }
        /// <summary>
        /// 交易类型  trade_type  是  String(16)  JSAPI  调用接口提交的交易类型，取值如下：JSAPI，NATIVE，APP，MICROPAY，详细说明见参数规定  
        /// </summary>
        public string TradeType { get; set; }
        
        /// <summary>
        /// 交易状态  trade_state  是  String(32) 
        /// SUCCESS—支付成功 
        /// REFUND—转入退款 
        /// NOTPAY—未支付 
        /// CLOSED—已关闭 
        /// REVOKED—已撤销（刷卡支付）
        /// USERPAYING--用户支付中 
        /// PAYERROR--支付失败(其他原因，如银行返回失败)
        /// </summary>
        public string TradeState { get; set; }

        /// <summary>
        /// 付款银行  bank_type  是  String(16)  CMC  银行类型，采用字符串类型的银行标识 
        /// </summary>
        public string BankType { get; set; }
        /// <summary>
        /// 订单金额 total_fee  是  Int  100  订单总金额，单位为分   
        /// </summary>
        public string TotalFee { get; set; }
        /// <summary>
        /// 货币种类  fee_type  否  String(8)  CNY  货币类型，符合ISO 4217标准的三位字母代码，默认人民币：CNY，其他值列表详见货币类型  
        /// </summary>
        public string FeeType { get; set; }
        /// <summary>
        /// 现金支付金额  cash_fee  是  Int  100  现金支付金额订单现金支付金额，详见支付金额  
        /// </summary>
        public string CashFee { get; set; }
        /// <summary>
        /// 现金支付货币类型  cash_fee_type  否  String(16)  CNY  货币类型，符合ISO 4217标准的三位字母代码，默认人民币：CNY，其他值列表详见货币类型   
        /// </summary>
        public string CashFeeType { get; set; }
         
        /// <summary>
        /// 微信支付订单号  transaction_id  是  String(32)  1009660380201506130728806387  微信支付订单号      
        /// </summary>
        public string TransactionId { get; set; }
        /// <summary>
        /// 商户订单号  out_trade_no  是  String(32)  20150806125346  商户系统的订单号，与请求一致。  
        /// </summary>
        public string OutTradeNo { get; set; }
        /// <summary>
        /// 附加数据  attach  否  String(128)  深圳分店 附加数据，原样返回   
        /// </summary>
        public string Attach { get; set; }
        /// <summary>
        /// 支付完成时间  time_end  是  String(14)  20141030133525  订单支付时间，格式为yyyyMMddHHmmss，如2009年12月25日9点10分10秒表示为20091225091010。其他详见时间规则  
        /// </summary>
        public string TimeEnd { get; set; }
        /// <summary>
        /// 交易状态描述  trade_state_desc 是  String(256)  支付失败，请重新下单支付 对当前查询订单状态的描述和下一步操作的指引 
        /// </summary>
        public string TradeStateDesc { get; set; }


    }
}